Most of the personal computers in use today are designed to use a keyboard which provides signals through an interface to a legacy Industry Standard Association (ISA) bus. This interface includes a controller which is designed to translate incoming serial data generated by the keyboard to parallel data, store that data in a buffer register, and generate an interrupt so that the central processing unit may read the data in the register. The controller also allows commands to be sent from the central processing unit to the keyboard controller registers at specific input/output (I/O) addresses for enabling certain functions of the keyboard.
Recently, a new bus, referred to as the Universal Serial Bus (USB), has been introduced. The bus has been designed to allow peripheral devices to be easily connected to Intel-processor-based computers. The Universal Serial Bus provides a uniform connector to which all external peripheral devices connect. The Universal Serial Bus is designed to operate with advanced operating systems which provide bus mastering. In fact, the Universal Serial Bus is designed to function as a bus master and transfer data between connected peripheral devices and main memory. Under such operating systems, each connected device is allotted a portion of a repeating interval by the bus master. By being assigned a fixed percentage of each bus master interval, each device receives a bandwidth of guaranteed size and latency. This allocation of bandwidth makes the bus more amenable to real time operations such as sound and video than prior art circuitry. The parameters of this new bus are described in a preliminary specification entitled Universal Serial Bus Specification, Version 1.0, published December, 1996, by Compaq Computer Corp., Digital Equipment Corp., IBM PC Co., Intel Corp., Microsoft Corp., and Northern Telecom, which is incorporated herein by reference.
The Universal Serial Bus provides an entirely new interface for connecting the various peripherals. However, the Universal Serial Bus is not designed to function with legacy devices designed to operate with any of the versions of the Microsoft or PC disk operating systems (DOS). There are no DOS device drivers for the Universal Serial Bus. Consequently, external I/O devices connected to the Universal Serial Bus do not generate or recognize control signals which are used with DOS operations. Unfortunately, many prior software and hardware systems function only with versions of the DOS operating system and cannot utilize the Universal Serial Bus. In fact, most game programs function only with DOS.
It is desirable to be provided a method and apparatus by which a keyboard adapted to function with the Universal Serial Bus may be made to function with legacy DOS programs and hardware.